From 22ac390a92c0030858384d510b436fb55155e8a4 Mon Sep 17 00:00:00 2001 From: robertl Date: Mon, 9 May 2005 16:15:44 +0000 Subject: [PATCH] Round tomtom values so they match on AMD64 & IA32. From Olaf. --- gpsbabel/reference/ov2-arc-out.ref | Bin 2535 -> 2535 bytes gpsbabel/reference/ov2-geo-out.ref | Bin 416 -> 416 bytes gpsbabel/reference/ov2-in.ref | 8 ++++---- gpsbabel/tomtom.c | 25 +++++++++++++++---------- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gpsbabel/reference/ov2-arc-out.ref b/gpsbabel/reference/ov2-arc-out.ref index f858319868c7654b36c3cefc4bbdb31567b9b091..11d8ddd12fdd656d02706ddf1b33d7fff88b0762 100644 GIT binary patch literal 2535 zcmZwITSydf7zOaz$cF+g$f6(+4T5em>)za6)-p?|KvYP|0wXcI83d72DMmpgf|z)6^?#$u*mnQC0L zShgBV5PPUWSi&?+7A6nLq}A=S>@+M|ERWZ#_ZqL)X|~j6fZ? zmhLwxE!p7EH+R1YIt^;A&I-8|#5U`y*{awXT8NL%XH49TxdokLVzJ^cZVMqMz6rad z#>6*Z<7!NN9hUKx=Q8m%SiTy!OcU&u8gn$l-m5W318gfwki22$xB|1(f~m5!K`G5C z%fg`ia872pORy7@G={qX8&zYtbFk_u&M{mqY)p;eYG5a)Imd9-ut#bPcNBJhhI0&8 z0SkY3Ey8f+u$O9lNF}hAS2=DfmNxo z!ai8J8mpd%tyJS9$tbey{$K7|VtjNtu%~LQCKq;3jXCOJ+trw(9X9im*JF+e*hMun zwFjjvDNP!5%90oLjN0?TezW8y5> zRW-KiGd__@%$YjJrk}xjZ0CstO*TCVYgFS}F7LAJz9r5v$7@)fYi68zrI*2-c;>a2BjW qjp3fd7WLi1_4$l}Utq3Z=lGD`z@Dfv#}KStjX7+X6ym&}!p1)@!`kWq literal 2535 zcmZwIPe>GD7zXfJ@!~-Vk|;WuLJ);I>$>jlX)P_KI+zMcCM026Mg~FTkWx@YV&tJN zSsp#)vB2^Wi6ox7MP#WZ>1Ka4)3iV8^t?0AyE_9N_qXrNe$VrLI}=D`7)DQ}W%mV2 zjab~WS7+l!U@G0k=yE)T^=U3{{p`VQ0mGO%VA)pciw|3D`u!U9`z!=3sqlEN~uHsK#Q%vemd~ zv0OElAofUuu!IGeEKD}Zq_tI8b~+Xb?YdyV%S@EX@*dyQ+pjS`agV>X{fj6fTY zmYz2$E!p7IH}|{=It^;A&I)-H#CGbc*{WD8EyS(!854J5Zbj#qSgi7k+d_zmZ@})V zG4XX+LXC;9!7{({S|+{mR+h}~3Uj!xJcHRkAm?M4Zbx0pFD!z{I6sw{0#N^{C; z$Dn+0E@rq(u#@vNhPwcpQDeAsu%-phFat=a|E1%y9^FJMh?&ykX`z43lCU3mbtYKHl`1C*LK{VC!G^ zxH%~Q;%fX!yy(=LSB^cwq}(#fpRR^Y|Dkb-XJD_?8089VM2(Se!3Jp&R`VQoLX8!U z!D`f4^)f6&ja!nn-?GPlyK9MX>vCaF)L2actY3{e+F^Utn4=fA_>1>rjyc#xH8XVv zr7S5;8g$B%4KvPX3LCba9SNFjdLGuP#5tgaOaNEl)dvuNWW4I7(K#k$rVRdQ@_YAhC l&knB7XAC@yxpAH2CcT6WsxikD?7kXvY`~-t=lN7@`~&V!Z delta 42 zcmV+_0M-AX1E2$tNCC}}NiYElk$R#9^ND-^$de%fD*^SBO#vtccyoLI*OPhyCSVN^ A#sB~S diff --git a/gpsbabel/reference/ov2-in.ref b/gpsbabel/reference/ov2-in.ref index 908e02e6c..4c0e75dee 100644 --- a/gpsbabel/reference/ov2-in.ref +++ b/gpsbabel/reference/ov2-in.ref @@ -1,9 +1,9 @@ Mountain Bike Heaven by susy1313 3558.322N 08708.081W 0000000m Mountain Bike Heaven by susy13 a -The Troll by a182pilot & Family 3605.441N 08640.773W 0000000m The Troll by a182pilot & Famil a +The Troll by a182pilot & Family 3605.441N 08640.772W 0000000m The Troll by a182pilot & Famil a Dive Bomber by JoGPS & family 3559.776N 08637.207W 0000000m Dive Bomber by JoGPS & family a FOSTER by JoGPS & Family 3602.309N 08638.917W 0000000m FOSTER by JoGPS & Family a Logan Lighthouse by JoGps & Family 3606.731N 08644.506W 0000000m Logan Lighthouse by JoGps & Fa a Ganier Cache by Susy1313 3603.845N 08647.431W 0000000m Ganier Cache by Susy1313 a -Shy's Hill by FireFighterEng33 3605.266N 08648.584W 0000000m Shy's Hill by FireFighterEng33 a -GittyUp by JoGPS / Warner Parks 3603.449N 08653.519W 0000000m GittyUp by JoGPS / Warner Park a -Inlighting by JoGPS / Warner Parks 3604.967N 08652.037W 0000000m Inlighting by JoGPS / Warner P a +Shy's Hill by FireFighterEng33 3605.266N 08648.583W 0000000m Shy's Hill by FireFighterEng33 a +GittyUp by JoGPS / Warner Parks 3603.450N 08653.519W 0000000m GittyUp by JoGPS / Warner Park a +Inlighting by JoGPS / Warner Parks 3604.968N 08652.036W 0000000m Inlighting by JoGPS / Warner P a diff --git a/gpsbabel/tomtom.c b/gpsbabel/tomtom.c index abce6e5d4..ce75fb5a7 100644 --- a/gpsbabel/tomtom.c +++ b/gpsbabel/tomtom.c @@ -169,6 +169,13 @@ write_long( FILE *file, long value ) { fwrite( &tmp, sizeof(tmp), 1, file ); } +static void +write_float_as_long( FILE *file, double value ) +{ + long tmp = (value + 0.500000000001); + write_long( file, tmp); +} + static void write_char( FILE *file, unsigned char value ) { fwrite( &value, 1, 1, file ); @@ -197,10 +204,10 @@ write_blocks( FILE *f, struct blockheader *blocks ) { int i; write_char( f, 1 ); write_long( f, blocks->size ); - write_long( f, blocks->maxlon*100000 ); - write_long( f, blocks->maxlat*100000 ); - write_long( f, blocks->minlon*100000 ); - write_long( f, blocks->minlat*100000 ); + write_float_as_long( f, blocks->maxlon*100000 ); + write_float_as_long( f, blocks->maxlat*100000 ); + write_float_as_long( f, blocks->minlon*100000 ); + write_float_as_long( f, blocks->minlat*100000 ); if ( blocks->ch1 ) { write_blocks( f, blocks->ch1 ); } @@ -210,12 +217,10 @@ write_blocks( FILE *f, struct blockheader *blocks ) { if ( !blocks->ch1 && !blocks->ch2 ) { for ( i = 0; i < blocks->count; i++ ) { write_char( f, 2 ); - write_long( f, - strlen( blocks->start[i].wpt->description ) - + 14 ); - write_long( f, blocks->start[i].wpt->longitude*100000); - write_long( f, blocks->start[i].wpt->latitude*100000); - write_string( f, blocks->start[i].wpt->description ); + write_long( f, strlen( blocks->start[i].wpt->description ) + 14 ); + write_float_as_long( f, blocks->start[i].wpt->longitude*100000); + write_float_as_long( f, blocks->start[i].wpt->latitude*100000); + write_string( f, blocks->start[i].wpt->description); } } } -- 2.30.2